package com.meng.mini.spring.beans;

/**
 * @author Meng Xu
 * @version 1.0.0
 * @date 2024-01-16 09:57
 **/
public interface BeanFactory {

    /**
     * 获取 bean 实例
     * @param beanName bean 名称
     * @return 返回实例对象
     * @throws BeansException exception
     */
    Object getBean(String beanName) throws BeansException;

    /**
     * bean是否u才能在
     * @param name bean name
     * @return true or false
     */
    boolean containsBean(String name);

    /**
     * 是否为单例
     * @param name bean name
     * @return true or false
     */
    boolean isPrototype(String name);

    /**
     * 获取bean 类型
     * @param name bean name
     * @return class
     */
    Class<?> getType(String name);

    /**
     * 注册 一个definition
     * @param beanName bean 名称 (有 bean id , bean classPath 等信息)
     * @param obj obj
     */
//    void registryBean(String beanName,Object obj);
}
